perm filename Z2.AX[W76,JMC] blob
sn#198567 filedate 1976-01-24 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 DECLARE OPCONST + -(NATNUM,NATNUM)=NATNUM [R←500,L←550]
C00005 ENDMK
C⊗;
DECLARE OPCONST + -(NATNUM,NATNUM)=NATNUM [R←500,L←550];
DECLARE OPCONST * /(NATNUM,NATNUM)=NATNUM [R←600,L←650];
DECLARE OPCONST + -(NATNUM)=NATNUM [PRE];
DECLARE PREDCONST ≤ ≥ < > (NATNUM,NATNUM) [INF];
DECLARE PREDCONST | (NATNUM,NATNUM)[INF];
DECLARE INDVAR U V W X Y Z;
DECLARE INDVAR M M0 M1 M2 N N0 N1 N2 ε NATNUM;
DECLARE PREDPAR A 1;
DECLARE PREDCONST NATNUM 1;
DECLARE OPCONST SUCC 1;
DECLARE PREDCONST ε 2[INF];
DECLARE OPCONST ∪ 2[R←455 L←450];
AXIOM EXT: ∀X Y.(X=Y ≡ ∀Z.(ZεX ≡ ZεY));;
AXIOM NULLSET: ∀X.(¬Xε0);;
AXIOM PAIR: ∀X Y W.(Wε{X,Y} ≡ W=X ∨ W=Y);;
AXIOM UNIT: ∀X.({X} = {X,X});;
AXIOM UNION: ∀X Y W.((W ε X∪Y) ≡ WεX ∨ WεY);;
AXIOM NATNUM: ∀X.(NATNUM(X) ≡ ∀Y Z.(YεX ∧ ZεX ⊃ Y=Z ∨ YεZ ∨ ZεY)
∧ ∀Y Z.(YεX ∧ ZεY ⊃ ZεX));;
AXIOM SUCC: ∀N.(SUCC(N) = N ∪ {N});;
AXIOM INDUCTION: A(0) ∧ ∀N.(A(N) ⊃ A(SUCC(N))) ⊃ ∀N.A(N);;
AXIOM ADDONE: SUCC(0)=1,
SUCC(1)=2,
SUCC(2)=3,
SUCC(3)=4,
SUCC(4)=5,
SUCC(5)=6,
SUCC(6)=7,
SUCC(7)=8,
SUCC(8)=9;;
DECLARE OPCONST PRED(NATNUM) = NATNUM;
AXIOM PRED: ∀N.(PRED(SUCC(N)) = N),
∀N.(¬(N=0) ⊃ SUCC(PRED(N)) = N);;
AXIOM PLUS: ∀M.(M+0 = M),
∀M N.(M + SUCC(N) = SUCC(M+N));;
AXIOM TIMES: ∀M.(M*0 = 0),
∀M N.(M*SUCC(N)) = (M*N+M);;
AXIOM GREATEQ: ∀M N.(M ≥ N ≡ ∃N1.(M = N+N1));;
AXIOM GREATER: ∀M N.(M > N ≡ ¬(N ≥ M));;
AXIOM LESSEQ: ∀M N.(M ≤ N ≡ (N ≥ M));;
AXIOM LESSER: ∀M N.(M < N ≡ (N > M));;
AXIOM MINUS: ∀M.(M-0 = M),
∀M.(M-M = 0),
∀M N.(M ≥ N ⊃ SUCC(M)-N = SUCC(M-N));;
AXIOM DIVIDE: ∀M N.(M|N ≡ ∃M1.(N = M*M1));;
DECLARE PREDCONST PRIME 1;
AXIOM PRIME: ∀M.(PRIME(M) ≡ ¬(M=0)∧¬(M=1)∧∀N.(N|M ⊃ N=1 ∨ N=M));;